// 该文件用于创建 Vuex 中最为核心的 store
// 引入 Vuex
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 准备 actions —— 用于响应组件中的动作
const actions = {
  // add(context, value){
  //   context.commit('ADD', value)
  // },
  // sub(context, value){
  //   context.commit('SUB', value)
  // },
  addOdd(context, value){
    if(context.state.total % 2){
      context.commit('ADD', value)
    }
  },
  addWait(context, value){
    setTimeout(() => { 
      context.commit('ADD', value)
    }, 500)
  }
}
// 准备 mutations —— 用于操作数据(state)
const mutations = {
  ADD(state, value){
    state.total += value
  },
  SUB(state, value){
    state.total -= value
  },
}
// 准备 state —— 用于存储数据
const state = {
  total: 0 ,// 总和 
  school: '南昌大学',
  subject: '计算机'

}
// 准备 getters —— 用于将 state 中的数据进行加工
const getters = {
  bigTotal(state){
    return state.total * 10
  }
}

//  创建并暴露 store
export default new Vuex.Store({
    actions,
    mutations,
    state,
    getters
})